Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>System programming language</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/System_programming_language"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-System_programming_language rootpage-System_programming_language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">System programming language</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">For the HP language of the same name, see <a href="Systems_Programming_Language" title="Systems Programming Language">Systems Programming Language</a>.</div>
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>A <b>system programming language</b> is a <a href="Programming_language" title="Programming language">programming language</a> used for <a href="System_programming" class="mw-redirect" title="System programming">system programming</a>; such languages are designed for writing <a href="System_software" title="System software">system software</a>, which usually requires different development approaches when compared with application software. <a href="Edsger_W._Dijkstra" title="Edsger W. Dijkstra">Edsger Dijkstra</a> referred to these languages as <b>machine oriented high order languages</b>, or <b>mohol</b>.<sup id="cite_ref-MOHLconfer_1-0" class="reference"><a href="#cite_note-MOHLconfer-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p><a href="General-purpose_programming_language" title="General-purpose programming language">General-purpose programming languages</a> tend to focus on generic features to allow programs written in the language to use the same code on different <a href="Computing_platform" title="Computing platform">computing platforms</a>. Examples of such languages include <a href="ALGOL" title="ALGOL">ALGOL</a> and <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>. This generic quality typically comes at the cost of denying direct access to the machine's internal workings, and this often has negative effects on performance.
</p><p>System languages, in contrast, are designed not for compatibility, but for performance and ease of access to the underlying <a href="Computer_hardware" title="Computer hardware">computer hardware</a> while still providing <a href="High-level_programming_language" title="High-level programming language">high-level programming</a> concepts like <a href="Structured_programming" title="Structured programming">structured programming</a>. Examples include <a href="Executive_Systems_Problem_Oriented_Language" class="mw-redirect" title="Executive Systems Problem Oriented Language">Executive Systems Problem Oriented Language</a> (ESPOL) and <a href="Systems_Programming_Language" title="Systems Programming Language">Systems Programming Language</a> (SPL), both of which are ALGOL-like in <a href="Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> but tuned to their respective platforms. Others are <a href="Cross-platform_software" title="Cross-platform software">cross-platform software</a>, but designed to work close to the hardware, like <a href="BLISS" title="BLISS">BLISS</a>, <a href="JOVIAL" title="JOVIAL">JOVIAL</a>, and <a href="BCPL" title="BCPL">BCPL</a>.
</p><p>Some languages straddle the system and application domains, bridging the gap between these uses. The canonical example is <a href="C_(programming_language)" title="C (programming language)">C</a>, which is used widely for both system and application programming. <a href="PL/I" title="PL/I">PL/I</a> was an early example. Some modern languages also do this such as <a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a> and <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Features">Features</h2></div>
<p>In contrast with application languages, system programming languages typically offer more-direct access to the physical hardware of the machine: an archetypical system programming language in this sense was <a href="BCPL" title="BCPL">BCPL</a>. System programming languages often lack built-in <a href="Input/output" title="Input/output">input/output</a> (I/O) facilities because a system-software project usually develops its own I/O mechanisms or builds on basic monitor I/O or screen management facilities. The distinction between languages used for system programming and application programming became blurred over time with the widespread popularity of <a href="PL/I" title="PL/I">PL/I</a>, <a href="C_(programming_language)" title="C (programming language)">C</a> and <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>The earliest system software was written in <a href="Assembly_language" title="Assembly language">assembly language</a> mostly because no alternative existed, but also for reasons including efficiency of <a href="Object_code" title="Object code">object code</a>, <a href="Compiler" title="Compiler">compiling</a> time, and ease of debugging. Application languages such as <a href="FORTRAN" class="mw-redirect" title="FORTRAN">FORTRAN</a> were used for system programming, although they usually still required some routines to be written in assembly language.<sup id="cite_ref-Sammet_2-0" class="reference"><a href="#cite_note-Sammet-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Mid-level_languages">Mid-level languages</h3></div>
<p>Mid-level languages "have much of the <a href="Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> and facilities of a higher level language, but also provide direct access in the language (and often an assembly language) to machine features."<sup id="cite_ref-Sammet_2-1" class="reference"><a href="#cite_note-Sammet-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> The earliest of these was <a href="Executive_Systems_Problem_Oriented_Language" class="mw-redirect" title="Executive Systems Problem Oriented Language">ESPOL</a> on Burroughs mainframes in about 1960, followed by <a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a>'s <a href="PL360" title="PL360">PL360</a> (first written on a Burroughs system as a <a href="Cross_compiler" title="Cross compiler">cross compiler</a>), which had the general syntax of <a href="ALGOL_60" title="ALGOL 60">ALGOL 60</a> but whose statements directly manipulated CPU registers and memory. Other languages in this category include <a href="MOL-360" title="MOL-360">MOL-360</a> and <a href="PL/S" class="mw-redirect" title="PL/S">PL/S</a>.
</p><p>As an example, a typical PL360 statement is <code>R9&nbsp;:= R8 and R7 shll 8 or R6</code>, signifying that registers 8 and 7 should be and'ed together, the result shifted left 8 bits, the result of that or'ed with the contents of register 6, and the final result placed into register 9.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Higher-level_languages">Higher-level languages</h3></div>
<p>While PL360 is at the semantic level of assembly language, another kind of system programming language operates at a higher semantic level, but has specific extensions designed to make the language suitable for system programming. An early example of this kind of language is LRLTRAN,<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> which extended Fortran with features for character and bit manipulation, pointers, and directly addressed jump tables.
</p><p>Subsequently, languages such as C were developed, where the combination of features was sufficient to write system software, and a <a href="Compiler" title="Compiler">compiler</a> could be developed that generated efficient object programs on modest hardware. Such a language generally omits features that cannot be implemented efficiently, and adds a small number of machine-dependent features needed to access specific hardware abilities; <a href="Inline_assembly" class="mw-redirect" title="Inline assembly">inline assembly</a> code, such as C's <code class="mw-highlight mw-highlight-lang-c mw-content-ltr" style="" dir="ltr"><span class="k">asm</span></code> statement, is often used for this purpose. Although many such languages were developed,<sup id="cite_ref-MOHLconfer_1-1" class="reference"><a href="#cite_note-MOHLconfer-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> C and <a href="C%2B%2B" title="C++">C++</a> are the ones which survived.
</p>
<div class="mw-heading mw-heading2"><h2 id="Major_languages">Major languages</h2></div>
<table class="wikitable sortable collapsible">

<tbody><tr>
<th>Language</th>
<th>Originator</th>
<th>Birth date</th>
<th>Influenced by</th>
<th>Used for
</th></tr>
<tr>
<td><a href="JOVIAL" title="JOVIAL">JOVIAL</a></td>
<td><a href="System_Development_Corporation" title="System Development Corporation">System Development Corporation</a></td>
<td>1960</td>
<td><a href="ALGOL_58" title="ALGOL 58">ALGOL 58</a></td>
<td>Many systems, mostly military
</td></tr>
<tr>
<td><a href="Executive_Systems_Problem_Oriented_Language" class="mw-redirect" title="Executive Systems Problem Oriented Language">ESPOL</a></td>
<td><a href="Burroughs_Corporation" title="Burroughs Corporation">Burroughs Corporation</a></td>
<td>1961</td>
<td><a href="ALGOL_60" title="ALGOL 60">ALGOL 60</a></td>
<td><a href="MCP_(Burroughs_Large_Systems)" class="mw-redirect" title="MCP (Burroughs Large Systems)">MCP</a>
</td></tr>
<tr>
<td><a href="PL/I" title="PL/I">PL/I</a></td>
<td><a href="IBM" title="IBM">IBM</a>, <a href="SHARE_(computing)" title="SHARE (computing)">SHARE</a></td>
<td>1964</td>
<td>ALGOL, FORTRAN, some COBOL</td>
<td><a href="Multics" title="Multics">Multics</a>, <a href="Stratus_VOS" title="Stratus VOS">Stratus VOS</a>. Dialects used in <a href="PRIMOS" title="PRIMOS">PRIMOS</a>, <a href="Control_Program_Facility" title="Control Program Facility">IBM CPF</a>, <a href="IBM_OS/400" class="mw-redirect" title="IBM OS/400">IBM OS/400</a>.
</td></tr>
<tr>
<td><a href="PL/S" class="mw-redirect" title="PL/S">PL/S</a></td>
<td><a href="IBM" title="IBM">IBM</a></td>
<td>1960s</td>
<td><a href="PL/I" title="PL/I">PL/I</a></td>
<td><a href="OS/360_and_successors" title="OS/360 and successors">OS/360 and successors</a>
</td></tr>
<tr>
<td><a href="Edinburgh_IMP" title="Edinburgh IMP">Edinburgh IMP</a></td>
<td><a href="University_of_Edinburgh" title="University of Edinburgh">University of Edinburgh</a></td>
<td>1966</td>
<td><a href="ALGOL_60" title="ALGOL 60">ALGOL 60</a>, <a href="Atlas_Autocode" title="Atlas Autocode">Atlas Autocode</a></td>
<td><a href="Edinburgh_Multiple_Access_System" title="Edinburgh Multiple Access System">Edinburgh Multiple Access System</a>
</td></tr>
<tr>
<td><a href="BCPL" title="BCPL">BCPL</a></td>
<td><a href="Martin_Richards_(computer_scientist)" title="Martin Richards (computer scientist)">Martin Richards</a></td>
<td>1967</td>
<td><a href="CPL_(programming_language)" title="CPL (programming language)">CPL</a></td>
<td><a href="Xerox_Alto" title="Xerox Alto">Xerox Alto</a> Executive, <a href="TRIPOS" title="TRIPOS">TRIPOS</a>
</td></tr>
<tr>
<td><a href="PL360" title="PL360">PL360</a></td>
<td><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></td>
<td>1968</td>
<td>ALGOL 60</td>
<td><a href="ALGOL_W" title="ALGOL W">ALGOL W</a>
</td></tr>
<tr>
<td><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></td>
<td><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></td>
<td>1970</td>
<td><a href="ALGOL_W" title="ALGOL W">ALGOL W</a></td>
<td><a href="Domain/OS" title="Domain/OS">Apollo AEGIS</a>, <a href="MacApp" title="MacApp">MacApp</a>, <a href="UCSD_Pascal" title="UCSD Pascal">UCSD p-System</a>, <a href="VAXELN" title="VAXELN">VAXELN</a>, <a href="Apple_Lisa#Lisa_OS" title="Apple Lisa">Lisa OS</a>
</td></tr>
<tr>
<td><a href="BLISS" title="BLISS">BLISS</a></td>
<td><a href="Carnegie_Mellon_University" title="Carnegie Mellon University">Carnegie Mellon University</a></td>
<td>1970</td>
<td>ALGOL, PL/I<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></td>
<td><a href="OpenVMS" title="OpenVMS">OpenVMS</a> (portions), <a href="Hydra_(operating_system)" title="Hydra (operating system)">Hydra</a>
</td></tr>
<tr>
<td><a href="Language_for_Systems_Development" title="Language for Systems Development">Language for Systems Development</a> (LSD)</td>
<td>R. Daniel Bergeron, et al. (Brown University)</td>
<td>1971</td>
<td><a href="PL/I" title="PL/I">PL/I</a></td>
<td>
</td></tr>
<tr>
<td><a href="C_(programming_language)" title="C (programming language)">C</a></td>
<td><a href="Dennis_Ritchie" title="Dennis Ritchie">Dennis Ritchie</a></td>
<td>1972</td>
<td><a href="BCPL" title="BCPL">BCPL</a>, <a href="B_(programming_language)" title="B (programming language)">B</a></td>
<td>Many <a href="Kernel_(operating_system)" title="Kernel (operating system)">operating system kernels</a>, including most <a href="Unix-like" title="Unix-like">Unix-like</a> systems
</td></tr>
<tr>
<td><a href="System_Programming_Language" class="mw-redirect" title="System Programming Language">System Programming Language</a> (SPL)</td>
<td><a href="Hewlett-Packard" title="Hewlett-Packard">Hewlett-Packard</a></td>
<td>1972</td>
<td><a href="ALGOL_60" title="ALGOL 60">ALGOL 60</a>, <a href="Executive_Systems_Problem_Oriented_Language" class="mw-redirect" title="Executive Systems Problem Oriented Language">ESPOL</a></td>
<td><a href="HP_3000" title="HP 3000">HP 3000</a> system software, including <a href="HP_Multi-Programming_Executive" title="HP Multi-Programming Executive">MPE</a>
</td></tr>
<tr>
<td><a href="PL/M" title="PL/M">PL/M</a></td>
<td><a href="Gary_Kildall" title="Gary Kildall">Gary Kildall</a></td>
<td>1973</td>
<td><a href="PL/I" title="PL/I">PL/I</a>, <a href="XPL" title="XPL">XPL</a></td>
<td><a href="CP/M" title="CP/M">CP/M</a>, <a href="ISIS_(operating_system)" title="ISIS (operating system)">ISIS</a>, <a href="IRMX" class="mw-redirect" title="IRMX">iRMX</a>
</td></tr>
<tr>
<td><a href="NEWP" class="mw-redirect" title="NEWP">NEWP</a></td>
<td>Burroughs</td>
<td>1970s</td>
<td>ESPOL, ALGOL</td>
<td>MCP
</td></tr>
<tr>
<td><a href="PL.8" title="PL.8">PL.8</a></td>
<td><a href="IBM" title="IBM">IBM</a></td>
<td>1970s</td>
<td><a href="PL/I" title="PL/I">PL/I</a></td>
<td>compiler development, <a href="IBM_AIX" title="IBM AIX">AIX</a> (versions 1 and 2 only), IBM mainframe firmware
</td></tr>
<tr>
<td><a href="PL-6" title="PL-6">PL-6</a></td>
<td><a href="Honeywell%2C_Inc." class="mw-redirect" title="Honeywell, Inc.">Honeywell, Inc.</a></td>
<td>1970s</td>
<td><a href="PL/I" title="PL/I">PL/I</a></td>
<td><a href="Honeywell_CP-6" title="Honeywell CP-6">CP-6</a>
</td></tr>
<tr>
<td><a href="SYMPL" title="SYMPL">SYMPL</a></td>
<td><a href="Control_Data_Corporation" title="Control Data Corporation">CDC</a></td>
<td>1970s</td>
<td><a href="JOVIAL" title="JOVIAL">JOVIAL</a></td>
<td><a href="NOS_(operating_system)" title="NOS (operating system)">NOS</a> subsystems, most compilers, FSE editor
</td></tr>
<tr>
<td><a href="Transaction_Application_Language" title="Transaction Application Language">Transaction Application Language</a> (TAL)</td>
<td><a href="Tandem_Computers" title="Tandem Computers">Tandem Computers</a></td>
<td>1970s</td>
<td><a href="System_Programming_Language" class="mw-redirect" title="System Programming Language">SPL</a>, <a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></td>
<td><a href="NonStop_OS" class="mw-redirect" title="NonStop OS">NonStop OS</a>
</td></tr>
<tr>
<td><a href="Mesa_(programming_language)" title="Mesa (programming language)">Mesa</a></td>
<td><a href="Xerox_PARC" class="mw-redirect" title="Xerox PARC">Xerox PARC</a></td>
<td>1976</td>
<td><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>, <a href="ALGOL_68" title="ALGOL 68">ALGOL 68</a></td>
<td><a href="Pilot_(operating_system)" title="Pilot (operating system)">Pilot</a>, <a href="GlobalView" title="GlobalView">GlobalView</a>
</td></tr>
<tr>
<td><a href="Modula-2" title="Modula-2">Modula-2</a></td>
<td><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></td>
<td>1978</td>
<td><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>, <a href="Mesa_(programming_language)" title="Mesa (programming language)">Mesa</a></td>
<td><a href="Lilith_(computer)#Operating_system" title="Lilith (computer)">Medos-2</a>, portions of <a href="IBM_OS/400" class="mw-redirect" title="IBM OS/400">IBM OS/400</a> and <a href="PRIMOS" title="PRIMOS">PRIMOS</a>. <a href="Modula-2%2B" title="Modula-2+">Modula-2+</a> variant used in <a href="ARX_(operating_system)" title="ARX (operating system)">ARX</a>, <a href="DEC_Firefly#Software" title="DEC Firefly">Topaz</a>.
</td></tr>
<tr>
<td><a href="C%2B%2B" title="C++">C++</a>
</td>
<td><a href="Bjarne_Stroustrup" title="Bjarne Stroustrup">Bjarne Stroustrup</a></td>
<td>1979</td>
<td><a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="Simula" title="Simula">Simula</a></td>
<td><a href="BeOS" title="BeOS">BeOS</a>, <a href="Haiku_(operating_system)" title="Haiku (operating system)">Haiku</a>, <a href="Serenity_OS" class="mw-redirect" title="Serenity OS">Serenity OS</a>, <a href="Symbian" title="Symbian">Symbian</a>. Portions of <a href="IBM_i" title="IBM i">IBM i</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>.
</td></tr>
<tr>
<td><a href="S3_(programming_language)" title="S3 (programming language)">S3</a></td>
<td><a href="International_Computers_Limited" title="International Computers Limited">ICL</a></td>
<td>1980s</td>
<td><a href="ALGOL_68" title="ALGOL 68">ALGOL 68</a></td>
<td><a href="ICL_VME" title="ICL VME">ICL VME</a>
</td></tr>
<tr>
<td><a href="Ada_(programming_language)" title="Ada (programming language)">Ada</a></td>
<td><a href="Jean_Ichbiah" title="Jean Ichbiah">Jean Ichbiah</a>, S. Tucker Taft</td>
<td>1983</td>
<td><a href="ALGOL_68" title="ALGOL 68">ALGOL 68</a>, <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>, <a href="C%2B%2B" title="C++">C++</a>, <a href="Eiffel_(programming_language)" title="Eiffel (programming language)">Eiffel</a></td>
<td>Military,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> aerospace<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> mass transportation,<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> high-integrity computation, operating system kernels,<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> <a href="IMAX_432" title="IMAX 432">iMAX 432</a>, <a href="BiiN#Description" title="BiiN">BiiN/OS</a>
</td></tr>
<tr>
<td><a href="Oberon_(programming_language)" title="Oberon (programming language)">Oberon</a></td>
<td><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></td>
<td>1987</td>
<td><a href="Modula-2" title="Modula-2">Modula-2</a></td>
<td><a href="Oberon_(operating_system)" title="Oberon (operating system)">Oberon (operating system)</a>
</td></tr>
<tr>
<td><a href="Modula-3" title="Modula-3">Modula-3</a></td>
<td><a href="DEC_Systems_Research_Center" title="DEC Systems Research Center">DEC SRC</a>, <a href="Olivetti" title="Olivetti">Olivetti</a></td>
<td>1988</td>
<td><a href="Modula-2%2B" title="Modula-2+">Modula-2+</a></td>
<td><a href="SPIN_(operating_system)" title="SPIN (operating system)">SPIN</a>
</td></tr>
<tr>
<td><a href="D_(programming_language)" title="D (programming language)">D</a></td>
<td><a href="Digital_Mars" title="Digital Mars">Digital Mars</a></td>
<td>2001</td>
<td><a href="C%2B%2B" title="C++">C++</a></td>
<td>
</td></tr>
<tr>
<td><a href="Nim_(programming_language)" title="Nim (programming language)">Nim</a></td>
<td>Andreas Rumpf</td>
<td>2008</td>
<td><a href="Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="Ada_(programming_language)" title="Ada (programming language)">Ada</a>, <a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a>, <a href="Oberon_(programming_language)" title="Oberon (programming language)">Oberon</a>, <a href="C%2B%2B" title="C++">C++</a>, <a href="Modula-3" title="Modula-3">Modula-3</a>, <a href="Object_Pascal" title="Object Pascal">Object Pascal</a></td>
<td>
</td></tr>
<tr>
<td><a href="Go_(programming_language)" title="Go (programming language)">Go</a></td>
<td><a href="Google" title="Google">Google</a></td>
<td>2009</td>
<td><a href="Oberon_(programming_language)" title="Oberon (programming language)">Oberon</a>, <a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></td>
<td><a href="Kubernetes" title="Kubernetes">Kubernetes</a>, <a href="Docker_(software)" title="Docker (software)">Docker</a>
</td></tr>
<tr>
<td><a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a></td>
<td><a href="Mozilla_Research" class="mw-redirect" title="Mozilla Research">Mozilla Research</a><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></td>
<td>2010</td>
<td><a href="C%2B%2B" title="C++">C++</a>, <a href="Haskell" title="Haskell">Haskell</a>, <a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>, <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></td>
<td><a href="Servo_(software)" title="Servo (software)">Servo</a>, <a href="RedoxOS" title="RedoxOS">RedoxOS</a>. Portions of the <a href="Linux_kernel" title="Linux kernel">Linux kernel</a> and of <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>.
</td></tr>
<tr>
<td><a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a></td>
<td><a href="Apple_Inc." title="Apple Inc.">Apple Inc.</a></td>
<td>2014</td>
<td><a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="Objective-C" title="Objective-C">Objective-C</a>, <a href="D_(programming_language)" title="D (programming language)">D</a>, <a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a></td>
<td><a href="MacOS" title="MacOS">macOS</a>, <a href="IOS" title="IOS">iOS</a>, <a href="WatchOS" title="WatchOS">watchOS</a>, and <a href="TvOS" title="TvOS">tvOS</a> app development <sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><a href="Zig_(programming_language)" title="Zig (programming language)">Zig</a>
</td>
<td>Andrew Kelley
</td>
<td>2016
</td>
<td><a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="C%2B%2B" title="C++">C++</a>, <a href="LLVM_IR" class="mw-redirect" title="LLVM IR">LLVM IR</a>, <a href="Go_(programming_language)" title="Go (programming language)">Go</a>, <a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a>
</td>
<td>
</td></tr>
<tr>
<td><a href="Mojo_(programming_language)" title="Mojo (programming language)">Mojo</a>
</td>
<td>Modular Inc.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</td>
<td>2023
</td>
<td><a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="C%2B%2B" title="C++">C++</a>, <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, <a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a>, <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a>, <a href="Zig_(programming_language)" title="Zig (programming language)">Zig</a>
</td>
<td>
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1266661725">
/* start https://en.wikipedia.org/ */


.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}


/* end https://en.wikipedia.org/ */
</style>
<ul><li><a href="Ousterhout's_dichotomy" title="Ousterhout's dichotomy">Ousterhout's dichotomy</a></li>
<li><a href="PreScheme" class="mw-redirect" title="PreScheme">PreScheme</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-lower-alpha">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">Swift uses <a href="Automatic_Reference_Counting" title="Automatic Reference Counting">Automatic Reference Counting</a></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-MOHLconfer-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-MOHLconfer_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-MOHLconfer_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFvan_der_PoelMaarssen1973" class="citation conference cs1">van der Poel, W. L.; Maarssen, L. A., eds. (27–31 August 1973). <i>Machine oriented higher level languages</i>. IFIP Working Conference on Machine Oriented Higher Level Languages (MOHL). Trondheim, Norway: International Federation for Information Processing.</cite> Proceedings published 1974.</span>
</li>
<li id="cite_note-Sammet-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-Sammet_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Sammet_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFSammet1971" class="citation journal cs1">Sammet, Jean (October 1971). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F942596.807055">"Brief Survey of Languages Used for Systems Implementation"</a>. <i>ACM SIGPLAN Notices</i>. <b>6</b> (9): <span class="nowrap">1–</span>19. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F942596.807055">10.1145/942596.807055</a></span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFWirth1968" class="citation journal cs1"><a href="Niklaus_Wirth" title="Niklaus Wirth">Wirth, Niklaus</a> (1968). "PL360, A Programming Language for the 360 Computers". <i>Journal of the ACM</i>. <b>15</b> (1): <span class="nowrap">37–</span>74. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F321439.321442">10.1145/321439.321442</a>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFMendicinoHughesMartinMcMahon1968" class="citation journal cs1">Mendicino, Sam F.; Hughes, Robert A.; Martin, Jeanne T.; McMahon, Frank H.; Ranelletti, John E.; Zwakenberg, Richard G. (1968). "The LRLTRAN Compiler". <i>Communications of the ACM</i>. <b>11</b> (11): <span class="nowrap">747–</span>755. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F364139.364154">10.1145/364139.364154</a>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFWulfRussellHaberman1971" class="citation journal cs1">Wulf, W. A.; Russell, D. B.; Haberman, A. N. (December 1971). "BLISS: A Language for Systems Programming". <i>Communications of the ACM</i>. <b>14</b> (12): <span class="nowrap">780–</span>790. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.691.9765">10.1.1.691.9765</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F362919.362936">10.1145/362919.362936</a>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.adacore.com/uploads/customers/CaseStudy_Eurofighter.pdf">"Case Study, BAE Systems Eurofighter Typhoon"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://aviation.stackexchange.com/questions/3608/what-programming-languages-are-used-for-equipment-onboard-aircraft#15486">"What programming languages are used for equipment onboard aircraft?"</a>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.railfaneurope.net/tgv/signals.html">"TGVweb: The TGV Signaling System"</a>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://ironclad.nongnu.org/">"Ironclad"</a>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://m2os.unican.es/">"M2OS. RTOS with simple tasking support for small microcontrollers"</a>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/jgrivera67/HiRTOS">"Jgrivera67/HiRTOS"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20140104070627/https://www.mozilla.org/en-US/research/projects/">"Mozilla Research Projects"</a>. Archived from <a rel="nofollow" class="external text" href="https://www.mozilla.org/en-US/research/projects/">the original</a> on 2014-01-04.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.modular.com/">"Modular Inc."</a> <i>www.modular.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-25</span></span>.</cite></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><cite id="CITEREFCorbató1969" class="citation journal cs1">Corbató, Fernando (1969-05-06). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120921035455/http://home.roadrunner.com/~pflass/PLI/plisprg.html">"PL/I as a Tool for System Programming"</a>. <i>Datamation</i>: <span class="nowrap">68–</span>76. Archived from <a rel="nofollow" class="external text" href="http://home.roadrunner.com/~pflass/PLI/plisprg.html">the original</a> on 2012-09-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-01-23</span></span>.</cite></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-17" href="https://en.wikipedia.org/wiki/?title=System_programming_language&amp;oldid=1301020721">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>